/*
 * ----------------------------------------------------------------------------
 *  (C) Copyright European Telecommunications Standards Institute, 2001.
 *  All Rights Reserved.
 *
 *  All copies of this program, whether in whole or in part, and whether
 *  modified or not, must display this and all other embedded copyright
 *  and ownership notices in full.
 *
 * ----------------------------------------------------------------------------
 */
package org.etsi.ttcn.tri;

import java.io.Serializable;

/**
 * <p>
 * This interface consists of operations that are neccessary to implement the
 * communication of the TTCN-3 ETS with the SUT. It includes operations to
 * initialze the Test System Interface (TSI), establish connections to the SUT,
 * and handle message and procedure based communication with the SUT. In
 * addition, the triCommunication interface offers an operation to reset tje SUT
 * Adapter (SA).
 * 
 * <p>
 * This part of the TriCommunication Interface handles the communication from
 * the TE to the SA, i.e. the SA has to implement the operation defined here.
 */

public interface TriCommunicationSA extends Serializable {

  /**
   * <p>
   * This operation can be called by the TE at any time to reset the SA.
   * 
   * <p>
   * The SA shall reset all communication means which it is maintaining, e.g.,
   * reset static connections to the SUT, close dynamic connections to the SUT,
   * discard any pending messages or procedure calls. The triResetSA operation
   * returns TRI_OK in case the operation has been successfully performed,
   * TRI_Error otherwise.
   * 
   * @return The return status of the triSAReset operation. The return status
   *         indicates the local success (TRI_OK) or failure (TRI_Error) of the
   *         operation.
   * 
   * @see "TRI-Definition 7.5.1"
   */
  TriStatus triSAReset();

  /**
   * <p>
   * This operation is called by the TE immediately before the execution of any
   * test case. The test case that is going to be executed is indicated by the
   * testCaseId. tsiPortList contains all ports that have been declared in the
   * definition of the system component for the test case, i.e., the TSI ports.
   * If a system component has not been explicitly defined for the test case in
   * the TTCN-3 ATS then the tsiPortList contains all communication ports of the
   * MTC test component. The ports in tsiPortList are ordered as they appear in
   * the respective TTCN-3 component declaration.
   * 
   * <p>
   * The SA can set up any static connections to the SUT and initialise any
   * communication means for TSI ports.
   * 
   * <p>
   * The triExecuteTestcase operation returns TRI_OK in case the operation has
   * been successfully performed, TRI_Error otherwise.
   * 
   * @param testCaseId
   *          identifier of the test case that is going to be executed
   * 
   * @param tsiPorts
   *          a list of test system interface ports defined for the test system
   * 
   * @return The return status of the triExecuteTestcase operation. The return
   *         status indicates the local success (TRI_OK) or failure (TRI_Error)
   *         of the operation.
   * 
   * @see "TRI-Definition 7.5.2"
   */
  public TriStatus triExecuteTestcase(TriTestCaseId testCaseId,
      TriPortIdList tsiPorts);

  /**
   * <p>
   * The SA can establish a dynamic connection to the SUT for the referenced TSI
   * port. The triMap operation returns TRI_Error in case a connection could not
   * be established successfully, TRI_OK otherwise. The operation should return
   * TRI_OK in case no dynamic connection needs to be established by the test
   * system.
   * 
   * <p>
   * This operation is called by the TE when it executes a TTCN-3 map operation.
   * 
   * @param compPortId
   *          identifier of the test component port to be mapped
   * @param tsiPortId
   *          identifier of the test system interface port to be mapped
   * 
   * @return The return status of the triMap operation. The return status
   *         indicates the local success (TRI_OK) or failure (TRI_Error) of the
   *         operation.
   * 
   * @see "TRI-Definition 7.5.3"
   * 
   */
  public TriStatus triMap(TriPortId compPortId, TriPortId tsiPortId);

  /**
   * <p>
   * The SA shall close a dynamic connection to the SUT for the referenced TSI
   * port. The triUnmap operation returns TRI_Error in case a connection could
   * not be closed successfully or no such connection has been established
   * previously, TRI_OK otherwise. The operation should return TRI_OK in case no
   * dynamic connections have to be established by the test system.
   * 
   * <p>
   * This operation is called by the TE when it executes any TTCN-3 unmap
   * operation.
   * 
   * @param compPortId
   *          identifier of the test component port to be unmapped
   * 
   * @param tsiPortId
   *          identifier of the test system interface port to be unmapped
   * 
   * @return The return status of the triUnmap operation. The return status
   *         indicates the local success (TRI_OK) or failure (TRI_Error) of the
   *         operation.
   * 
   * @see "TRI-Definition 7.5.4"
   * 
   */
  public TriStatus triUnmap(TriPortId compPortId, TriPortId tsiPortId);

  /**
   * <p>
   * The SA can send the message to the SUT. The triSend operation returns
   * TRI_OK in case it has been completed successfully. Otherwise TRI_Error
   * shall be returned. Notice that the return value TRI_OK does not imply that
   * the SUT has received sendMessage.
   * 
   * <p>
   * This operation is called by the TE when it executes a TTCN-3 send operation
   * on a component port, which has been mapped to a TSI port. This operation is
   * called by the TE for all TTCN-3 send operations if no system component has
   * been specified for a test case, i.e., only a MTC test component is created
   * for a test case. The encoding of sendMessage has to be done in the TE prior
   * to this TRI operation call.
   * 
   * @param componentId
   *          identifier of the sending test component
   * 
   * @param tsiPortId
   *          identifier of the test system interface port via which the message
   *          is sent to the SUT Adapter
   * 
   * @param address
   *          (optional) destination address within the SUT
   * 
   * @param sendMessage
   *          the encoded message to be send
   * 
   * @return The return status of the triSend operation. The return status
   *         indicates the local success (TRI_OK) or failure (TRI_Error) of the
   *         operation.
   * 
   * @see "TRI-Definition 7.5.5"
   */
  public TriStatus triSend(TriComponentId componentId, TriPortId tsiPortId,
      TriAddress address, TriMessage sendMessage);

  /**
   * This operation is called by the TE when it executes a TTCN-3 broadcast send
   * operation on a component port, which has been mapped to a TSI port. This
   * operation is called by the TE for all TTCN-3 send operations if no system
   * component has been specified for a test case, i.e. only a MTC test
   * component is created for a test case.
   * 
   * The encoding of sendMessage has to be done in the TE prior to this TRI
   * operation call.
   * 
   * The SA can broadcast the message to the SUT.
   * 
   * The triSend operation returns TRI_OK in case it has been completed
   * successfully. Otherwise TRI_Error shall be returned. Notice that the return
   * value TRI_OK does not imply that the SUT has received sendMessage.
   * 
   * @param componentId
   *          identifier of the sending test component
   * @param tsiPortId
   *          identifier of the test system interface port via which the message
   *          is sent to the SUT Adapter
   * @param sendMessage
   *          the encoded message to be sent
   * @return The return status of the triSend operation. The return status
   *         indicates the local success (TRI_OK) or failure (TRI_Error) of the
   *         operation.
   * 
   * @see "Ref: TRI-Definition 5.5.3.2"
   */
  public TriStatus triSendBC(TriComponentId componentId, TriPortId tsiPortId,
      TriMessage sendMessage);

  /**
   * This operation is called by the TE when it executes a TTCN-3 multicast send
   * operation on a component port, which has been mapped to a TSI port. This
   * operation is called by the TE for all TTCN-3 send operations if no system
   * component has been specified for a test case, i.e. only a MTC test
   * component is created for a test case.
   * 
   * The encoding of sendMessage has to be done in the TE prior to this TRI
   * operation call.
   * 
   * The SA can multicast the message to the SUT.
   * 
   * The triSend operation returns TRI_OK in case it has been completed
   * successfully. Otherwise TRI_Error shall be returned. Notice that the return
   * value TRI_OK does not imply that the SUT has received sendMessage.
   * 
   * @param componentId
   *          identifier of the sending test component
   * @param tsiPortId
   *          identifier of the test system interface port via which the message
   *          is sent to the SUT Adapter
   * @param addresses
   *          destination addresses within the SUT
   * @param sendMessage
   *          the encoded message to be sent
   * @return The return status of the triSend operation. The return status
   *         indicates the local success (TRI_OK) or failure (TRI_Error) of the
   *         operation.
   * 
   * @see "Ref: TRI-Definition 5.5.3.3"
   */
  public TriStatus triSendMC(TriComponentId componentId, TriPortId tsiPortId,
      TriAddressList addresses, TriMessage sendMessage);
  
  /**
   * <p>
   * On invocation of this operation the SA can initiate the procedure call
   * corresponding to the signature identifier signatureId and the TSI port
   * tsiPortId. The triCall operation shall return without waiting for the
   * return of the issued procedure call1. This TRI operation returns TRI_OK on
   * successful initiation of the procedure call, TRI_Error otherwise. No error
   * shall be indicated by the SA in case the value of any out parameter is
   * non-null. Notice that the return value of this TRI operation does not make
   * any statement about the success or failure of the procedure call. Note that
   * an optional timeout value, which can be specified in the TTCN-3 ATS for a
   * call operation, is not included in the triCall operation signature. The TE
   * is responsible to address this issue by starting a timer for the TTCN-3
   * call operation in the PA with a separate TRI operation call, i.e.,
   * triStartTimer.
   * 
   * <p>
   * This operation is called by the TE when it executes a TTCN-3 call operation
   * on a component port, which has been mapped to a TSI port. This operation is
   * called by the TE for all TTCN-3 call operations if no system component has
   * been specified for a test case, i.e., only a MTC test component is created
   * for a test case. All in and inout procedure parameters contain encoded
   * values. All out procedure parameters shall contain the distinct value of
   * null since they are only of relevance in a reply to the procedure call but
   * not in the procedure call itself. The procedure parameters are the
   * parameters specified in the TTCN-3 signature template. Their encoding has
   * to be done in the TE prior to this TRI operation call.
   * 
   * @param componentId
   *          identifier of the test component issuing the procedure call
   * 
   * @param tsiPortId
   *          identifier of the test system interface port via which the
   *          procedure call is sent to the SUT Adapter
   * 
   * @param sutAddress
   *          (optional) destination address within the SUT
   * 
   * @param signatureId
   *          identifier of the signature of the procedure call
   * 
   * @param parameterList
   *          a list of encoded parameters which are part of the indicated
   *          signature. The parameters in parameterList are ordered as they
   *          appear in the TTCN-3 signature declaration.
   * 
   * @return The return status of the triCall operation. The return status
   *         indicates the local success (TRI_OK) or failure (TRI_Error) of the
   *         operation.
   * 
   * 
   * @see "TRI-Definition 7.5.7"
   */
  public TriStatus triCall(TriComponentId componentId, TriPortId tsiPortId,
      TriAddress sutAddress, TriSignatureId signatureId,
      TriParameterList parameterList);

  /**
   * This operation is called by the TE when it executes a TTCN-3 broadcast call
   * operation on a component port, which has been mapped to a TSI port. This
   * operation is called by the TE for all TTCN-3 call operations if no system
   * component has been specified for a test case, i.e. only a MTC test
   * component is created for a test case.
   * 
   * All in and inout procedure parameters contain encoded values.
   * 
   * The procedure parameters are the parameters specified in the TTCN-3
   * signature template. Their encoding has to be done in the TE prior to this
   * TRI operation call.
   * 
   * On invocation of this operation the SA can initiate and broadcast the
   * procedure call corresponding to the signature identifier signatureId and
   * the TSI port tsiPortId.
   * 
   * The triCall operation shall return without waiting for the return of the
   * issued procedure call (see note). This TRI operation returns TRI_OK on
   * successful initiation of the procedure call, TRI_Error otherwise. No error
   * shall be indicated by the SA in case the value of any out parameter is
   * non-null. Notice that the return value of this TRI operation does not make
   * any statement about the success or failure of the procedure call.
   * 
   * Note that an optional timeout value, which can be specified in the TTCN-3
   * ATS for a call operation, is not included in the triCall operation
   * signature. The TE is responsible to address this issue by starting a timer
   * for the TTCN-3 call operation in the PA with a separate TRI operation call,
   * i.e. triStartTimer.
   * 
   * @param componentId
   *          identifier of the test component issuing the procedure call
   * @param tsiPortId
   *          identifier of the test system interface port via which the
   *          procedure call is sent to the SUT Adapter
   * @param signatureId
   *          identifier of the signature of the procedure call
   * @param parameterList
   *          a list of encoded parameters which are part of the indicated
   *          signature. The parameters in parameterList are ordered as they
   *          appear in the TTCN-3 signature declaration
   * @return The return status of the triCall operation. The return status
   *         indicates the local success (TRI_OK) or failure (TRI_Error) of the
   *         operation.
   * 
   * @see "Ref: TRI-Definition 5.5.4.2"
   */
  public TriStatus triCallBC(TriComponentId componentId, TriPortId tsiPortId,
      TriSignatureId signatureId, TriParameterList parameterList);

  /**
   * This operation is called by the TE when it executes a TTCN-3 multicast call
   * operation on a component port, which has been mapped to a TSI port. This
   * operation is called by the TE for all TTCN-3 call operations if no system
   * component has been specified for a test case, i.e. only a MTC test
   * component is created for a test case.
   * 
   * All in and inout procedure parameters contain encoded values.
   * 
   * The procedure parameters are the parameters specified in the TTCN-3
   * signature template. Their encoding has to be done in the TE prior to this
   * TRI operation call.
   * 
   * On invocation of this operation the SA can initiate and multicast the
   * procedure call corresponding to the signature identifier signatureId and
   * the TSI port tsiPortId.
   * 
   * The triCall operation shall return without waiting for the return of the
   * issued procedure call (see note). This TRI operation returns TRI_OK on
   * successful initiation of the procedure call, TRI_Error otherwise. No error
   * shall be indicated by the SA in case the value of any out parameter is
   * non-null. Notice that the return value of this TRI operation does not make
   * any statement about the success or failure of the procedure call.
   * 
   * Note that an optional timeout value, which can be specified in the TTCN-3
   * ATS for a call operation, is not included in the triCall operation
   * signature. The TE is responsible to address this issue by starting a timer
   * for the TTCN-3 call operation in the PA with a separate TRI operation call,
   * i.e. triStartTimer.
   * 
   * @param componentId
   *          identifier of the test component issuing the procedure call
   * @param tsiPortId
   *          identifier of the test system interface port via which the
   *          procedure call is sent to the SUT Adapter
   * @param sutAddresses
   *          destination addresses within the SUT
   * @param signatureId
   *          identifier of the signature of the procedure call
   * @param parameterList
   *          a list of encoded parameters which are part of the indicated
   *          signature. The parameters in parameterList are ordered as they
   *          appear in the TTCN-3 signature declaration
   * @return The return status of the triCall operation. The return status
   *         indicates the local success (TRI_OK) or failure (TRI_Error) of the
   *         operation.
   * 
   * @see "Ref: TRI-Definition 5.5.4.3"
   */
  public TriStatus triCallMC(TriComponentId componentId, TriPortId tsiPortId,
      TriAddressList sutAddresses, TriSignatureId signatureId,
      TriParameterList parameterList);

  /**
   * <p>
   * This operation is called by the TE when it executes a TTCN-3 reply
   * operation on a component port which has been mapped to a TSI port. This
   * operation is called by the TE for all TTCN-3 reply operations if no system
   * component has been specified for a test case, i.e., only a MTC test
   * component is created for a test case. All out and inout procedure
   * parameters and the return value contain encoded values. All in procedure
   * parameters shall contain the distinct value of null since they are only of
   * relevance to the procedure call but not in the reply to the call. The
   * parameterList contains procedure call parameters. These parameters are the
   * parameters specified in the TTCN-3 signature template. Their encoding has
   * to be done in the TE prior to this TRI operation call. If no return type
   * has been defined for the procedure signature in the TTCN-3 ATS, the
   * distinct value null shall be passed for the return value.
   * 
   * <p>
   * On invocation of this operation the SA can issue the reply to a procedure
   * call corresponding to the signature identifier signatureId and the TSI port
   * tsiPortId. The triReply operation will return TRI_OK on successful
   * execution of this operation, TRI_Error otherwise. No error shall be
   * indicated by the SA in case the value of any in parameter or a non-defined
   * return value is non-null.
   * 
   * @param componentId
   *          identifier of the replying test component
   * 
   * @param tsiPortId
   *          identifier of the test system interface port via which the reply
   *          is sent to the SUT Adapter
   * 
   * @param sutAddress
   *          (optional) destination address within the SUT
   * 
   * @param signatureId
   *          identifier of the signature of the procedure call
   * 
   * @param parameterList
   *          a list of encoded parameters which are part of the indicated
   *          signature. The parameters in parameterList are ordered as they
   *          appear in the TTCN-3 signature declaration.
   * 
   * @param returnValue
   *          (optional) encoded return value of the procedure call
   * 
   * @return The return status of the triReply operation. The return status
   *         indicates the local success (TRI_OK) or failure (TRI_Error) of the
   *         operation.
   * 
   * @see "TRI-Definition 7.5.8"
   */
  public TriStatus triReply(TriComponentId componentId, TriPortId tsiPortId,
      TriAddress sutAddress, TriSignatureId signatureId,
      TriParameterList parameterList, TriParameter returnValue);

  /**
   * This operation is called by the TE when it executes a TTCN-3 multicast
   * reply operation on a component port that has been mapped to a TSI port.
   * This operation is called by the TE for all TTCN‑3 reply operations if no
   * system component has been specified for a test case, i.e. only a MTC test
   * component is created for a test case.
   * 
   * All out and inout procedure parameters and the return value contain encoded
   * values.
   * 
   * The parameterList contains procedure call parameters. These parameters are
   * the parameters specified in the TTCN-3 signature template. Their encoding
   * has to be done in the TE prior to this TRI operation call.
   * 
   * If no return type has been defined for the procedure signature in the
   * TTCN-3 ATS, the distinct value null shall be passed for the return value.
   * 
   * On invocation of this operation the SA can multicast the reply to procedure
   * calls corresponding to the signature identifier signatureId and the TSI
   * port tsiPortId.
   * 
   * The triReply operation will return TRI_OK on successful execution of this
   * operation, TRI_Error otherwise. The SA shall indicate no error in case the
   * value of any in parameter or an undefined return value is different from
   * null.
   * 
   * @param componentId
   *          identifier of the replying test component
   * @param tsiPortId
   *          dentifier of the test system interface port via which the reply is
   *          sent to the SUT Adapter
   * @param sutAddresses
   *          destination addresses within the SUT
   * @param signatureId
   *          identifier of the signature of the procedure call
   * @param parameterList
   *          a list of encoded parameters which are part of the indicated
   *          signature. The parameters in parameterList are ordered as they
   *          appear in the TTCN-3 signature declaration
   * @param returnValue
   *          (optional) encoded return value of the procedure call
   * @return The return status of the triReply operation. The return status
   *         indicates the local success (TRI_OK) or failure (TRI_Error) of the
   *         operation.
   * 
   * @see "Ref: TRI-Definition 5.5.4.6"
   */
  public TriStatus triReplyMC(TriComponentId componentId, TriPortId tsiPortId,
      TriAddressList sutAddresses, TriSignatureId signatureId,
      TriParameterList parameterList, TriParameter returnValue);

  /**
   * This operation is called by the TE when it executes a TTCN-3 broadcast
   * reply operation on a component port that has been mapped to a TSI port.
   * This operation is called by the TE for all TTCN‑3 reply operations if no
   * system component has been specified for a test case, i.e. only a MTC test
   * component is created for a test case.
   * 
   * All out and inout procedure parameters and the return value contain encoded
   * values.
   * 
   * The parameterList contains procedure call parameters. These parameters are
   * the parameters specified in the TTCN-3 signature template. Their encoding
   * has to be done in the TE prior to this TRI operation call.
   * 
   * If no return type has been defined for the procedure signature in the
   * TTCN-3 ATS, the distinct value null shall be passed for the return value.
   * 
   * On invocation of this operation the SA can broadcast the reply to procedure
   * calls corresponding to the signature identifier signatureId and the TSI
   * port tsiPortId.
   * 
   * The triReply operation will return TRI_OK on successful execution of this
   * operation, TRI_Error otherwise. The SA shall indicate no error in case the
   * value of any in parameter or an undefined return value is different from
   * null.
   * 
   * @param component
   *          Id identifier of the replying test component
   * @param tsiPortId
   *          identifier of the test system interface port via which the reply
   *          is sent to the SUT Adapter
   * @param signatureId
   *          identifier of the signature of the procedure call
   * @param parameterList
   *          a list of encoded parameters which are part of the indicated
   *          signature. The parameters in parameterList are ordered as they
   *          appear in the TTCN-3 signature declaration
   * @param returnValue
   *          (optional) encoded return value of the procedure call
   * @return The return status of the triReply operation. The return status
   *         indicates the local success (TRI_OK) or failure (TRI_Error) of the
   *         operation.
   * 
   * @see "Ref: TRI-Definition 5.5.4.5"
   */
  public TriStatus triReplyBC(TriComponentId componentId, TriPortId tsiPortId,
      TriSignatureId signatureId, TriParameterList parameterList,
      TriParameter returnValue);
  
  /**
   * <p>
   * This operation is called by the TE when it executes a TTCN-3 raise
   * operation on a component port which has been mapped to a TSI port. This
   * operation is called by the TE for all TTCN-3 raise operations if no system
   * component has been specified for a test case, i.e., only a MTC test
   * component is created for a test case. The encoding of the exception has to
   * be done in the TE prior to this TRI operation call.
   * 
   * <p>
   * On invocation of this operation the SA can raise an exception to a
   * procedure call corresponding to the signature identifier signatureId and
   * the TSI port tsiPortId. The triRaise operation returns TRI_OK on successful
   * execution of the operation, TRI_Error otherwise.
   * 
   * @param componentId
   *          identifier of the test component raising the exception
   * 
   * @param tsiPortId
   *          identifier of the test system interface port via which the
   *          exception is sent to the SUT Adapter
   * 
   * @param sutAddress
   *          (optional) destination address within the SUT
   * 
   * @param signatureId
   *          identifier of the signature of the procedure call which the
   *          exception is associated with
   * 
   * @param exception
   *          the encoded exception
   * 
   * @return The return status of the triRaise operation. The return status
   *         indicates the local success (TRI_OK) or failure (TRI_Error) of the
   *         operation.
   * 
   * @see "TRI-Definition 7.5.9"
   * 
   */
  public TriStatus triRaise(TriComponentId componentId, TriPortId tsiPortId,
      TriAddress sutAddress, TriSignatureId signatureId, TriException exception);

  /**
   * This operation is called by the TE when it executes a TTCN-3 broadcast
   * raise operation on a component port that has been mapped to a TSI port.
   * This operation is called by the TE for all TTCN‑3 raise operations if no
   * system component has been specified for a test case, i.e. only a MTC test
   * component is created for a test case.
   * 
   * The encoding of the exception has to be done in the TE prior to this TRI
   * operation call.
   * 
   * On invocation of this operation the SA can raise and broadcast an exception
   * to procedure calls corresponding to the signature identifier signatureId
   * and the TSI port tsiPortId.
   * 
   * The triRaise operation returns TRI_OK on successful execution of the
   * operation, TRI_Error otherwise.
   * 
   * @param componentId
   *          identifier of the test component raising the exception
   * @param tsitPortId
   *          identifier of the test system interface port via which the
   *          exception is sent to the SUT Adapter
   * @param signatureId
   *          identifier of the signature of the procedure call which the
   *          exception is associated with
   * @param exc
   *          the encoded exception
   * @returnThe return status of the triRaise operation. The return status
   *            indicates the local success (TRI_OK) or failure (TRI_Error) of
   *            the operation.
   * 
   * @see "Ref: TRI-Definition 5.5.4.8"
   */
  public TriStatus triRaiseBC(TriComponentId componentId, TriPortId tsitPortId,
      TriSignatureId signatureId, TriException exc);

  /**
   * This operation is called by the TE when it executes a TTCN-3 multicast
   * raise operation on a component port that has been mapped to a TSI port.
   * This operation is called by the TE for all TTCN‑3 raise operations if no
   * system component has been specified for a test case, i.e. only a MTC test
   * component is created for a test case.
   * 
   * The encoding of the exception has to be done in the TE prior to this TRI
   * operation call.
   * 
   * On invocation of this operation the SA can raise and multicast an exception
   * to a procedure calls corresponding to the signature identifier signatureId
   * and the TSI port tsiPortId.
   * 
   * The triRaise operation returns TRI_OK on successful execution of the
   * operation, TRI_Error otherwise.
   * 
   * @param componentId
   *          identifier of the test component raising the exception
   * @param tsitPortId
   *          identifier of the test system interface port via which the
   *          exception is sent to the SUT Adapter
   * @param sutAddresses
   *          destination addresses within the SUT
   * @param signatureId
   *          identifier of the signature of the procedure call which the
   *          exception is associated with
   * @param exc
   *          the encoded exception
   * @return The return status of the triRaise operation. The return status
   *         indicates the local success (TRI_OK) or failure (TRI_Error) of the
   *         operation.
   * 
   * @see "TRI-Definition 5.5.4.9"
   */
  public TriStatus triRaiseMC(TriComponentId componentId, TriPortId tsitPortId,
      TriAddressList sutAddresses, TriSignatureId signatureId, TriException exc);

  /**
   * <p>
   * This operation is called by the TE when it executes a TTCN-3 SUT action
   * operation, which only contains a string.
   * 
   * <p>
   * On invocation of this operation the SA shall initiate the described actions
   * to be taken on the SUT, e.g., turn on, initialize, or send a message to the
   * SUT. The triSUTactionInformal operation returns TRI_OK on successful
   * execution of the operation, TRI_Error otherwise. Notice that the return
   * value of this TRI operation does not make any statement about the success
   * or failure of the actions to be taken on the SUT.
   * 
   * @param description
   *          an informal description of an action to be taken on the SUT
   * 
   * @return The return status of the triSUTactionInformal operation. The return
   *         status indicates the local success (TRI_OK) or failure (TRI_Error)
   *         of the operation.
   * 
   * @see "TRI-Definition 7.5.13"
   */
  public TriStatus triSutActionInformal(String description);

  /**
   * <p>
   * This operation is called by the TE when it executes a TTCN-3 SUT action
   * operation, which uses a template. The encoding of the action template value
   * has to be done in the TE prior to this TRI operation call.
   * 
   * <p>
   * On invocation of this operation the SA shall initiate the actions to be
   * taken on the SUT using the passed template value, e.g., turn on,
   * initialize, or send a message to the SUT. The triSUTactionTemplate
   * operation returns TRI_OK on successful execution of the operation,
   * TRI_Error otherwise. Notice that the return value of this TRI operation
   * does not make any statement about the success or failure of the actions to
   * be taken on the SUT.
   * 
   * @param templateValue
   *          the encoded value of the action template
   * 
   * @return The return status of the triSUTactionTemplate operation. The return
   *         status indicates the local success (TRI_OK) or failure (TRI_Error)
   *         of the operation.
   * 
   * @see "TRI-Definition 7.5.14"
   */
  public TriStatus triSutActionTemplate(TriActionTemplate templateValue);
}
